package br.com.boreo.boreoapp_orcamento.dao;

import java.util.ArrayList;

import br.com.boreo.boreoapp_orcamento.model.FormaPagto;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;

public class FormaPagtoDAO {
	
	private BoreoAppOrcamentoDAO boreodao;
	/*Dados da tabela*/
	private static final String NOME_TABELA = "forma_pagto";
	private static final String ID = "_id";
	private static final String CODIGO = "codigo";
	private static final String DESCRICAO = "descricao";
	private static final String TIPO = "tipo";
	private static final String DESCONTO = "desconto";
	private static final String ACRESCIMO = "acrescimo";
	private static final String TAB_PRECO = "tab_preco";
	
	public FormaPagtoDAO(Context context) {
		boreodao = BoreoAppOrcamentoDAO.getInstance(context);
	}
	
	public long inserir(String codigo, String descricao, double tipo, double desconto, double acrescimo, double tab_preco) {
		ContentValues valores = new ContentValues();
	    valores.put(CODIGO, codigo);
	    valores.put(DESCRICAO, descricao);
	    valores.put(TIPO, tipo);
	    valores.put(DESCONTO, desconto);
	    valores.put(ACRESCIMO, acrescimo);
	    valores.put(TAB_PRECO, tab_preco);
	    
	    long retorno = boreodao.getWritableDatabase().insert(NOME_TABELA, null, valores);
	    boreodao.close();
    	return retorno;
	}
	
	public long inserirComId(int id, String codigo, String descricao, double tipo, double desconto, double acrescimo, double tab_preco) {
		ContentValues valores = new ContentValues();
		valores.put(ID, id);
	    valores.put(CODIGO, codigo);
	    valores.put(DESCRICAO, descricao);
	    valores.put(TIPO, tipo);
	    valores.put(DESCONTO, desconto);
	    valores.put(ACRESCIMO, acrescimo);
	    valores.put(TAB_PRECO, tab_preco);
	    
	    long retorno = boreodao.getWritableDatabase().insert(NOME_TABELA, null, valores);
	    boreodao.close();
    	return retorno;
	}
	
	public long alterar(int id, String descricao, double tipo, double desconto, double acrescimo, double tab_preco) {
		ContentValues valores = new ContentValues();
	    valores.put(DESCRICAO, descricao);
	    valores.put(TIPO, tipo);
	    valores.put(DESCONTO, desconto);
	    valores.put(ACRESCIMO, acrescimo);
	    valores.put(TAB_PRECO, tab_preco);
	    
    	String[] whereAgrs = {Integer.toString(id)};
    	int retorno = boreodao.getWritableDatabase().update(NOME_TABELA, valores, ID+" = ? ", whereAgrs);
    	boreodao.close();
    	return retorno;
	}
	
	public ArrayList<FormaPagto> selectFormaPagto() {
		ArrayList<FormaPagto> c = cursorToArray(boreodao.getReadableDatabase().rawQuery("SELECT * FROM "+NOME_TABELA+" ORDER BY "+DESCRICAO, null));
		boreodao.close();
		return c;
	}
	
	public ArrayList<FormaPagto> selectFormaPagtoPorId(int id) {
		ArrayList<FormaPagto> c = cursorToArray(boreodao.getReadableDatabase().rawQuery("SELECT * FROM "+NOME_TABELA+" WHERE "+ID+" = "+id+" ORDER BY "+DESCRICAO, null));
		boreodao.close();
		return c;
	}
	
	public void excluirTodasFormaPagto() {
		boreodao.getReadableDatabase().delete(NOME_TABELA, null, null);
	}
	
	private ArrayList<FormaPagto> cursorToArray(Cursor c){
		ArrayList<FormaPagto> formapagto = new ArrayList<FormaPagto>();
		while (c.moveToNext()) {
			formapagto.add(new FormaPagto(c.getInt(0), c.getString(1), c.getString(2), c.getDouble(3), c.getDouble(4), c.getDouble(5), c.getDouble(6)));
		}
		return formapagto;
	}
	

}
